const express = require('express')
const router = express.Router()
const passport = require('passport')
const Profile = require('../../model/Profiles')

router.get('/test',(req,res)=>{
  res.json({msg:'profile works'})
})

//@route POST  api/profiles/add
//@desc   创建信息接口
//@access  Private

// 这个是创建信息的接口，并且写入数据库中
router.post('/add',passport.authenticate('jwt',{session:false}),(req,res)=>{
    const profileFields = {}
    if(req.body.type)       profileFields.type = req.body.type
    if(req.body.describe)   profileFields.describe = req.body.describe
    if(req.body.income)     profileFields.income = req.body.income
    if(req.body.expend)     profileFields.expend = req.body.expend
    if(req.body.cash)       profileFields.cash = req.body.cash
    if(req.body.remark)     profileFields.remark = req.body.remark
    // 将数据存入数据库中，并且发送给前台
    new Profile(profileFields).save().then(Profile=>{
      res.json(Profile)
    })
})


//@route GET api/profiles
//@desc  获取所有信息
//@access Private

// 获取所有的内容，向数据库中获取所有的内容，如果说有的话呢，用then方法直接获取所有的返回结果在一个对象中，如果说没有则返回404，发给客户端，如果说有的话就以json格式返回即可
//这个是查询服务器的信息然后增加到指定即可
router.get('/',passport.authenticate('jwt',{session:false}),(req,res)=>{
  Profile.find().then(profile=>{
    if(!profile){
      return res.status(404).json('没有任何内容')
    }
    res.json(profile)
  })
  .catch(err=>res.status(404).json(err))
})



//@route GET api/profiles/:id
//@desc  获取单个信息
//@access Private
router.get('/:id',passport.authenticate('jwt',{session:false}),(req,res)=>{
  Profile.findOne({_id:req.params.id}).then(profile=>{
    if(!profile){
      return res.status(404).json('没有任何内容')
    }
    res.json(profile)
  })
  .catch(err=>res.status(404).json(err))
})


router.post('/edit/:id',passport.authenticate('jwt',{session:false}),(req,res)=>{
    const profileFields = {}
    if(req.body.type)       profileFields.type = req.body.type
    if(req.body.describe)   profileFields.describe = req.body.describe
    if(req.body.income)     profileFields.income = req.body.income
    if(req.body.expend)     profileFields.expend = req.body.expend
    if(req.body.cash)       profileFields.cash = req.body.cash
    if(req.body.remark)     profileFields.remark = req.body.remark
    Profile.findOneAndUpdate({_id:req.params.id},{$set:profileFields},{new:true}).then(profile=>res.json(profile))
}
)


router.delete('/delete/:id',passport.authenticate('jwt',{session:false}),(req,res)=>{
  Profile.findOneAndRemove({_id:req.params.id}).then(profile=>{
    profile.save().then(profile=>res.json(profile))
  }).catch(err=> res.status(404).json('删除失败'))
    
})


module.exports = router








//@route GET api/profiles/edit
//@desc  删除信息接口
//@access Private








//@route GET api/profiles/edit
//@desc  编辑信息
//@access Private